package com.neuedu.corejava.ch9;

public class PackaClass {
	public static void main(String[] args) {

		//java 为8种基本数据类型提供了一个包装类
		//包装类的主要用途是完成基本数据类型和字符串间的转换，或在基本数据类型间转换，提供了一些重要的属性
		
		//1.布尔值与布尔类型的转换
		boolean bool =true ;
		String  str=""+bool;//把boolean值转换成字符串
		Boolean boolean1=new Boolean(bool);
		
		str = boolean1.toString();
		boolean bool2=boolean1.booleanValue();
		
		bool2=Boolean.getBoolean("false");//把字符串转换为boolean
		
		Boolean bool3=Boolean.valueOf("true");
		boolean bool4=Boolean.valueOf("true");//把包装类对象转换成原始的数据类型的过程，拆箱
		bool4=bool3;//把包装类(Boolean类型)的对象直接赋值给原始数据类型(boolean类型)的过程，自动拆箱
		
		//把原始数据类型转换成包装对象的过程--装箱
		Boolean boolean2=bool4;//把原始数据类型直接赋值给包装类对象的过程，自动装箱
		boolean2=new Boolean(false);
		boolean2=new Boolean("false");
		
		
		//int 类型的转换
		int i=100;
		String intString="100";
		
		//把数字或字符串转换成包装类
		Integer integer=new Integer(i);//把数字转换成包装类--装箱
		integer=Integer.valueOf(i);//装箱
		integer=i;  //自动装箱
		
		integer=new Integer(intString);//把数字字符串转换成包装类
		integer=Integer.valueOf(intString);
		
		
		//把数字字符串转换成数字
		int ii= Integer.parseInt(intString);
		ii=integer.intValue();//通过方法拆箱
		ii=integer;//自动拆箱
		
		
		long l=integer.longValue();//在不同数据类型间转换
		Short s=integer.shortValue();
		byte b=integer.byteValue();
		float f=integer.floatValue();
		double d=integer.doubleValue();
		//char c=integer.charValue();---注意：数据类型间的转换不包含char类型
	
		
		char c='a';
		Character character=new Character(c);
		String  string=character.toString();
		//String='中';字符类型不能直接赋值给字符串类型
		string =String.valueOf(c);
		
		
		//使用Integer.parseInt进行数据转换时，可以指定数值的进制：十进制，二进制，八进制，十六进制
		
		/*
		 * Integer.parseInt("0", 10); //returns 0 Integer. parseInt("473", 10);
		 * //returns 473 Integer. parseInt("+42", 10);// returns 42 Integer.
		 * parseInt("-0", 10); //returns 0 Integer. parseInt("-FF", 16); //returns -255
		 * Integer. parseInt("1100110", 2);// returns 102 Integer.
		 * parseInt("2147483647", 10);// returns 2147483647 Integer.
		 * parseInt("-2147483648", 10);// returns -2147483648 Integer.
		 * parseInt("2147483648", 10); //throws a NumberFormatException Integer.
		 * parseInt("99", 8); //throws a NumberFormatException Integer. parseInt("Kona",
		 * 10); //throws a NumberFormatException Integer. parseInt("Kona", 27);
		 * //returns 411787
		 */
		 
		int k= Integer.parseInt("90",10);//10进制->转换为10进制
		System.out.println(k);
		
		k=Integer.parseInt("90",16);//10进制->转换为16进制
		System.out.println(k);
		
		k=Integer.parseInt("60",8);//10进制->转换为8进制
		System.out.println(k);
		
		k=Integer. parseInt("1100110", 2);//10进制->转换为2进制
		System.out.println(k);
		//0123456789 abcdefghij klmn opq
		k=Integer. parseInt("Kona", 27);//转换为27进制
		System.out.println(k);
		
		System.out.println("-----------------");
		System.out.println("Byte.SIZE "+Byte.SIZE);
		System.out.println("Short.SIZE "+Short.SIZE);
		System.out.println("Character.SIZE "+Character.SIZE);
		System.out.println("Integer.SIZE "+Integer.SIZE);
		System.out.println("Long.SIZE "+Long.SIZE);
		System.out.println("Float.SIZE "+Float.SIZE);
		System.out.println("Double.SIZE "+Double.SIZE);
		
		
	}
	
	
}
